#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 1. 数值是可以返回的
// 2. 地址也是可以返回的
// 3. 栈上的空间不可以返回，原因是随用随开，用完即消。


#if 0
int func()
{
    int a = 500;
    return a;
}
int* foo()
{
    int a = 500;
    int *pa = &a;
//    printf("&a = %p\n",&a);
     printf("&pa = %p\n",&pa);
//    return &a;
     return pa;
}
int* func2()
{
    int arr[100];
    return arr;
}
int main()
{
    int a = func();
    printf("a = %d\n",a);
    int *pa = foo();
    printf("pa = %p\n",pa);
    printf("*pa = %d\n",*pa);
    return 0;
}
#endif

// 4. 堆上的空间是可以放回

char * getFormatMem(int size, char content)
{
    char *p = (char *)malloc(size *sizeof(char));
    if( NULL == p)
        exit (-1);
    memset(p,content,size *sizeof(char)-1);
    p[size *sizeof(char)-1] = '\0';
    return p;
}

int main()
{
    char *p = getFormatMen(100,'a');
    printf("p = %s\n",p);
    free(p);
    return 0;

}
